/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.biblioteca.dao.impl;

import com.biblioteca.beans.TipoPublicacion;
import com.biblioteca.dao.TipoPublicacionDAO;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import org.springframework.jdbc.core.RowMapper;

/**
 *
 * @author Jesus
 */
public class TipoPublicacionDAOImpl extends JDBCSupport implements TipoPublicacionDAO{

    @Override
    public int Insert(TipoPublicacion tipoPublicacion) throws Exception {
        String sql="INSERT INTO tipopublicacion(descripcion) Values(?)";
        return this.jdbctemplate.update(sql, new Object[]{tipoPublicacion.getDescripcion()});
    }

    @Override
    public List<TipoPublicacion> getAll() throws Exception {
        String sql = "select * from tipopublicacion";
        return jdbctemplate.query(sql, new RowMapper(){
            
            @Override
            public TipoPublicacion mapRow(ResultSet rs, int rowNum) throws SQLException {
                TipoPublicacion tipopubli = new TipoPublicacion();
                tipopubli.setId(rs.getInt(1));
                tipopubli.setDescripcion(rs.getString(2));
                return tipopubli;
            }            
        });
    }

    @Override
    public int actualizar(TipoPublicacion tipoPublicacion) throws Exception {
        String sql="Update tipopublicacion set   descripcion=?  where id= ?";
        return this.jdbctemplate.update(sql, new Object[]{tipoPublicacion.getDescripcion(),tipoPublicacion.getId()});
    }

    @Override
    public int eliminar(int id) throws Exception {
        String sql = "delete from tipopublicacion where id = ?";
        return this.jdbctemplate.update(sql, new Object[]{id});
    }

    @Override
    public TipoPublicacion getid(int id) throws Exception {
        String sql="select * from tipopublicacion where id=?";
        return this.jdbctemplate.queryForObject(sql, new Object[]{id}, new RowMapper<TipoPublicacion>() {

            @Override
            public TipoPublicacion mapRow(ResultSet rs, int i) throws SQLException {
               TipoPublicacion tipopub = new TipoPublicacion();
                tipopub.setId(rs.getInt(1));
                tipopub.setDescripcion(rs.getString(2));
                return tipopub;
            }
        });
    }
    
}
